package io.renren.modules.app.service;

import com.baomidou.mybatisplus.extension.service.IService;
import io.renren.common.utils.PageUtils;
import io.renren.common.utils.R;
import io.renren.modules.app.entity.CustomerEntity;
import io.renren.modules.app.form.LoginForm;
import io.renren.modules.app.req.ForgetResetPasswordReq;
import io.renren.modules.app.req.SmsLoginReq;
import io.renren.modules.app.req.SmsRegisterReq;
import io.renren.modules.app.req.weixin.WeChatLoginReq;

import java.util.Map;

/**
 * 用户
 *
 * @author MR.XU
 * @email 260139486@qq.com
 * @date 2021-01-19 10:47:56
 */
public interface CustomerService extends IService<CustomerEntity> {

    PageUtils queryPage(Map<String, Object> params);

    CustomerEntity queryByMobile(String mobile);

    /**
     * renren测试用户登录
     * @param form    登录表单
     * @return        返回用户ID
     */
    long testLogin(LoginForm form);

    /**
     * 用户账号密码登录
     * @param form    登录表单
     * @return
     */
    Map login(LoginForm form);

    /**
     * 用户手机验证码登录
     * @param smsLoginReq    登录表单
     * @return
     */
    Map smsLogin(SmsLoginReq smsLoginReq);

    /**
     * 手机短信注册
     * @param smsRegisterReq
     * @return
     */
    void smsRegister(SmsRegisterReq smsRegisterReq);

    /**
     * 重置密码
     * @param forgetResetPasswordReq
     * @return
     */
    void forgetResetPassword(ForgetResetPasswordReq forgetResetPasswordReq);

    /**
     * 微信登录
     * @param weChatLoginReq
     * @return
     */
    Map wxLogin(WeChatLoginReq weChatLoginReq);

    public R testCrud();
}

